package top.easyblog.core.annotation;

import java.lang.annotation.*;

/**
 * Redis自定义分布式锁注解
 *
 * @author: frank.huang
 * @date: 2023-12-21 20:42
 */
@Target({ElementType.METHOD})
@Retention(RetentionPolicy.RUNTIME)
@Documented
public @interface DLock {
    /**
     * 分布式锁主key
     *
     * @return
     */
    String key() default "";

    /**
     * 分布式锁扩展key，支持SPEL表达式，可以动态从参数中取值作为key的一部分
     *
     * @return
     */
    String[] extKey() default {};

    /**
     * 是否等待锁
     *
     * @return
     */
    boolean waitingLock() default true;
}
